Centralized wireless lan load balancing

ABSTRACT

A centralized wireless LAN load balancing mechanism is described herein. In one embodiment, in response to a request for entering a wireless network from a wireless station and forwarded from multiple access points (APs) of the wireless network, a network access device coupled to the multiple APs determines a load for each of the APs. The network access device then selects one of the APs based on the determined loads of the APs and instructs the selected AP to associate with the wireless station. The network access device further instructs the remaining APs to reject the request. Other methods and apparatuses are also described.

CROSS-REFERENCE TO RELATED APPLICATIONS

The present application is a continuation application of U.S. patentapplication Ser. No. 12/333,132, filed Dec. 11, 2008, which is acontinuation application of U.S. patent application Ser. No. 11/056,525,filed Feb. 10, 2005, now U.S. Pat. No. 7,480,264, issued on Jan. 20,2009, the contents of which are incorporated herein by reference intheir entirety for all purposes.

FIELD OF THE INVENTION

The present invention relates generally to wireless networks. Moreparticularly, this invention relates to centralized wireless LAN loadbalancing.

BACKGROUND OF THE INVENTION

Wireless communication networks for providing links to mobile stationsare well known in the art. In one type of wireless network, a series ofaccess points provide wireless connections to various mobile users. Forexample, a building can include access points located at strategiclocations to serve mobile users as they move throughout the building.The mobile users migrate from access point to access point based uponthe strength of beacon signals from the various access points. That is,the mobile stations use the strength of the beacon signals to select thebest access point at a given point in time.

With changes in the channel environment and/or number of users in awireless local area network (WLAN) system, different access pointsexperience different traffic loading. That is, the number of usersserved by each of the access points varies over time. Those accesspoints that serve a relatively high number of stations (hot spots) canbecome overloaded and experience reduced performance. For example, anaccess point can become overloaded during a meeting in a conference roomproximate the access point when the attendees attempt to connect theirlaptops to the corporate intranet.

When a mobile station entering a WLAN (e.g., via association orre-association), the mobile station broadcast a message in the WLAN(e.g., probe request) to some of all of the access points of the WLAN).In response each of the access points (APs) responds to the mobilestation. Thereafter, the mobile station selects one of the access pointsto associate with based on the responses received from each of theaccess points (e.g., received signal strength indication or RSSI).However, when the mobile station selects an access point, the trafficload of the access point being associated and other access points maynot be taken into consideration. As a result, the selected access pointmay not be the most appropriate one (e.g., having the least trafficload).

SUMMARY OF THE INVENTION

A centralized wireless LAN load balancing mechanism is described herein.In one embodiment, in response to a request for entering a wirelessnetwork from a wireless station and forwarded from multiple accesspoints (APs) of the wireless network, a network access device coupled tothe multiple APs determines a load for each of the APs. The networkaccess device then selects one of the APs based on the determined loadsof the APs and instructs the selected AP to associate with the wirelessstation. The network access device further instructs the remaining APsto reject the request.

Other features of the present invention will be apparent from theaccompanying drawings and from the detailed description which follows.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention is illustrated by way of example and notlimitation in the figures of the accompanying drawings in which likereferences indicate similar elements.

FIG. 1 is a block diagram illustrating an exemplary networkconfiguration according to one embodiment.

FIG. 2 is a flow diagram illustrating an exemplary process forassociating a mobile client with an access point with load balancing,according to one embodiment.

FIG. 3 is a block diagram illustrating an exemplary databaseconfiguration according to one embodiment.

FIGS. 4A-4C are block diagrams illustrating typical IEEE 802.11 proberesponse packets.

FIGS. 5A and 5B are block diagrams illustrating an exemplary WLBP packetaccording to certain embodiments.

FIG. 6 is a flow diagram illustrating an exemplary process forassociating a wireless station with an access point, according to oneembodiment.

FIG. 7 is a block diagram of a digital processing system which may beused with one embodiment of the invention.

DETAILED DESCRIPTION

A centralized wireless LAN load balancing mechanism is described herein.In the following description, numerous details are set forth to providea more thorough explanation of the present invention. It will beapparent, however, to one skilled in the art, that the present inventionmay be practiced without these specific details. In other instances,well-known structures and devices are shown in block diagram form,rather than in detail, in order to avoid obscuring the presentinvention.

Reference in the specification to “one embodiment” or “an embodiment”means that a particular feature, structure, or characteristic describedin connection with the embodiment is included in at least one embodimentof the invention. The appearances of the phrase “in one embodiment” invarious places in the specification do not necessarily all refer to thesame embodiment.

Throughout this application, for the purposes of illustration, awireless local area network (WLAN) with IEEE 802.11 protocol is used asan example to demonstrate embodiments of the invention. However,embodiments of the invention are not limited to the WLAN and/or IEEE802.11 protocol, other types of wireless network and/or wirelessprotocols may also be applied.

According to one embodiment, multiple access points (APs) governed by anetwork access device (e.g., gateway, switch, router, etc.) can bedeployed in substantially the same region with substantially the sameSSID (service set identifier) and security settings to provide largercoverage and wireless client station (WS) roaming support. A centralizeddynamic load balance control protocol is utilized between the networkaccess device and some or all of these APs to control association of WSto balance the load of each AP. In this way, the quality of service(QoS) of overall network and efficient WS roaming, as well as a goodperformance improvement feature for distributed WLAN network, can beachieved.

According to one embodiment, factors that affect the QoS of distributedWLAN network may be taken into account to determine each AP's load,which may be represented as weights determined via a predeterminedformula, also referred to as a WLAN dynamic load balance algorithm(WLBA). In addition, a WLAN dynamic load balance control protocol (WLBP)between a network access device and each governed AP to exchange dataand management packets. As a result, the network access device cancollect all QoS data from APs and compute the weight for each AP basedon the WLBA to determine which AP is the appropriate one to accept theassociation from WS. The WLBA and/or WLBP may also be used indisassociation and/or re-association situations.

Once the network access device determines the appropriate AP, accordingto one embodiment, the network access device then issues one or moremanagement packets to a selected AP to direct WS to join the dedicatedAP through WLBP protocol. In this way, the load of AP including numberof associated WS, throughput, and frame error rate (FER) can be balancedproperly, and the entire network performance can be improved fromanticipated WS symmetry associations. Furthermore, the network accessdevice can provision the weight threshold to detect WS roaming anddirect WS to join the new AP with less handoff delay.

Typically, the association service is used to make a logical connectionbetween a mobile station and an access point. Each mobile station has tobecome associated with an access point before it is allowed to send orreceive data through the access point over the network. The connectionis necessary in order for the network to know where and how to deliverdata to the mobile station. The mobile station invokes the associationservice once and only once, typically when the mobile station enters thenetwork. Each mobile station can associate with one access point thoughan access point can associate with multiple stations.

The disassociation service is used either to force a mobile station toeliminate an association with an access point or for a mobile station toinform an access point that it no longer requires the services of thenetwork. When a mobile station becomes disassociated, it may begin a newassociation to communicate with another access point again. An accesspoint may force a mobile station or stations to disassociate because ofresource restraints (e.g., the access point is shutting down or beingremoved from the network for a variety of reasons). When a mobilestation is aware that it will no longer require the services of anaccess point, it may invoke the disassociation service to notify theaccess point that the logical connection to the services of the accesspoint from this mobile station is no longer required. Mobile stationsshould disassociate when they leave a network. Disassociation is anotification and can be invoked by either associated party. Neitherparty can refuse termination of the association.

Re-association enables a mobile station to change its currentassociation with an access point. The re-association service is similarto the association service, with the exception that it includesinformation about the access point with which a mobile station has beenpreviously associated. A mobile station will use the re-associationservice repeatedly as it moves throughout the coverage areas of multipleaccess points of a wireless network, loses contact with the access pointwith which it is associated, and needs to become associated with a newaccess point. By using the re-association service, a mobile stationprovides information to the access point to which it will be associatedand information pertaining to the access point which it will bedisassociated. This allows the newly associated access point to contactthe previously associated access point to obtain frames that may bewaiting there for delivery to the mobile station as well as otherinformation that may be relevant to the new association.

FIG. 1 is a block diagram illustrating an exemplary networkconfiguration according to one embodiment. In one embodiment, exemplarynetwork configuration 100 includes a network access device 101 forinterfacing a first network 102 and a second network 103. For example,the first network 102 may be an external network or a wide area network(WAN) such as Internet. The second network 103 may be an internalnetwork, such as, for example, a local area network (LAN) or an intranetof an organization.

The network access device 101 may be a gateway device, a switch orrouter, a modem (e.g., DSL or cable modem), or a combination of at leasttwo of these functionalities. In one embodiment, the network accessdevice 101 may be coupled to one or more access points (also referred toas repeaters), such as access points 105 to 107. Access points 105 to107 may be wireless communication devices capable of receiving andtransmitting data wirelessly with one or more mobile stations, such asmobile clients 108-113. A mobile station may be able to wirelesslycommunicate with more than one access point. For example, mobile client109 may be able to communicate with access points 105 and 106. However,a mobile station typically can only be associated with one access pointat a time in order to access the wireless network.

An access point, such as access point 107, may be directly coupled tothe network access device 101. Alternatively, an access point, such asaccess points 105-106, may be coupled to the network access device 101via a switch, a router, or a hub device 104. Furthermore, an accesspoint may be integrated within a switch (e.g., switch 104), a networkaccess device (e.g., network access device 101), or a combination ofboth.

A mobile client (e.g., mobile clients 108-113) may be a laptop ordesktop computer having a wireless interface, such as, for example, awireless Ethernet NIC (network interface card), an IEEE 802.11compatible device, or the like. Alternatively, a mobile client may be acellular phone, a wireless PDA (personal digital assistant), a pager, aportable gaming device, or a personal communicator (e.g., similar to aBlackberry compatible device), etc.

In addition to the wireless functionality, exemplary networkconfiguration 100 may include one or more wired clients (e.g., wireddesktop or laptop computers) communicatively coupled to the networkaccess device 101, either directly or via a switch or a hub device(e.g., switch 104). Furthermore, one or more servers such as, forexample, application servers (not shown), may be coupled to the LAN 103to provide local services to some or all clients 108-117.

According to one embodiment, the network access device 101 includes anassociation module 120 and a disassociation module 121 to provideassociation, disassociation, and/or re-association services to any ofthe clients 108-117 with respect to any of the access points 105-107with load balancing. For example, according to one embodiment, when amobile station, such as, for example, mobile client 110 attempts toenter the WLAN (e.g., via association or re-association), the mobileclient 110 sends a broadcast message to some or all of the access points105-107 of the WLAN for requesting entering the WLAN.

In one embodiment, each broadcast message to each access point mayinclude an indication of received signal strength between the mobileclient and the respective access point. For example, in an IEEE 802.11compatible environment, the broadcast message may be an IEEE 802.11compatible probe request, which includes an RSSI (received signalstrength indicator) between the mobile client and an access point.Alternatively, each of the access points that receive the broadcastmessage may determine the received signal strength. Furthermore, thereceived signal strength may be determined by both the mobile stationand the access point.

In response to the broadcast message, each of the access points 105-107transmits a first message to the network access device 101. The firstmessage may be transmitted via a proprietary protocol, such as awireless load balancing protocol (WLBP), which will be described indetails further below. The first message may be transmitted via atunneling protocol (e.g., layer 2 or layer 3 tunneling protocols). Inone embodiment, the first message may include load status with respectto each respective access point. In a particular embodiment, the firstmessage includes a number of mobile clients currently associated by therespective access point, the RSSI between the mobile client and therespective access point, and/or an error rate (e.g., frame error rate orFER) of the respective access point, which may represent a throughput ofthe respective access point.

In response to the first message received from each of the access points105-107, the network access device 101 calculates the load for each ofthe access points 105-107 based on the information received via thefirst message. Thereafter, the network access device 101 selects one ofthe access points having a load that satisfies one or more predeterminedcategories to associate with the mobile client, while the remainingaccess points are instructed to reject the request of the mobile client.

In one embodiment, for each of the access points, the network accessdevice 101 calculates a weight representing the load situation of therespective access point according to a predetermined formula based onthe load status of the first message received from the respective accesspoint, which will be described in details further below. Once thenetwork access device 101 selects one access point that satisfies theone or more predetermined categories (e.g., having the highest or lowestweight), the network access device 101 sends a second message to theselected access point to instruct the selected access point to acceptthe request of the mobile client. The network access device 101 furthersends a third message to remaining access points to reject the requestof the mobile client.

In response to the second message, the selected access point responds tothe mobile client to accept the request and establishes an associationwith the mobile client. In response to the third message, the remainingaccess points responds to the mobile client by rejecting the request. Asa result, only the selected access point accepts the request from themobile client and the selected access point is selected by the networkaccess device in consideration the load status of some or all of theaccess points, which leads to load balancing centralized by the networkaccess device.

FIG. 2 is a flow diagram illustrating an exemplary process forassociating a mobile client with an access point with load balancing,according to one embodiment. The exemplary process 200 may be performedby processing logic that may include hardware (e.g., circuitry,dedicated logic, etc.), software (such as is run on a general-purposecomputer system, a server, a router, or a dedicated machine), or acombination of both.

In this example, for the illustration purposes, it is assumed that thereare two IEEE 802.11 compatible access points 202-203 communicativelycoupled to a network access device 204 via an IEEE 802.11 compatibleprotocol. However, it is not so limited. The exemplary process 200 maybe applied to other wireless network configurations with other wirelessprotocols. In one embodiment, the access points 202-203 may beimplemented as any of the access points 105-107 of FIG. 1, while thenetwork access device 204 may be implemented as a part of network accessdevice 101 of FIG. 1. Similarly, client 201 may be implemented as any ofmobile clients 108-113 of FIG. 1.

Referring to FIG. 2, according to one embodiment, when client 201 wishesto enter the WLAN having access points 202-203 and a network accessdevice 204 interfacing the WLAN with another network (e.g., WAN orInternet), during operations 205-206, client 201 broadcasts a requestmessage, similar to an IEEE 802.11 compatible probe request, to accesspoints 202-203. The probe request may include an RSSI between client 201and access points 202-203 respectively. Alternatively, the RSSI may bedetermined by the access points 202-203, or a combination of both amobile station and an access point.

In response to the probe request, during operations 207-208, which maybe substantially concurrently or sequentially, each of the access points202-203 transmits a first message to the network access device 204. Thefirst message may be transmitted via a proprietary protocol or atunneling protocol, such as, for example, a WLBP. In one embodiment, thefirst message from each of the access points 202-203 includes loadstatus regarding the respective access point. In a particularembodiment, the load status includes a number of mobile clientscurrently associated with the respective access point, an RSSI betweenthe requesting mobile client and the respective access point, and/or anerror rate of the respective access point (e.g., a frame error rate orFER).

In response to the first message received from the access points202-203, during operation 209, the network access device 204 calculatesa load for each of the access points 202-203 according to apredetermined formula, also referred to as a WLAN dynamic load balancealgorithm (WLBA), based in part on the load status extracted from thefirst message. In one embodiment, the load of an access point isrepresented by a weight calculated based on at least one of the numberof mobile clients currently associated with the respective access point,an RSSI between the requesting mobile client and the respective accesspoint, and/or an FER of the respective access point, which may beprovided via the first message.

According to one embodiment, based on the weight corresponding to eachof the access points 202-203, the network access device 204 selects oneaccess point having a weight that satisfies one or more predeterminedcategories (e.g., highest or lowest weight). In this example, accesspoint 202 is selected based on the weight associated with access point202. The network access device 204 then sends a second message duringthe operation 210 to access point 202 to accept the request, whilesending a third message during operation 211 to access point 203 (e.g.,unselected access point) to reject the request.

In one embodiment, an example of the predetermined formula may bedefined as follows:

Wx=Vx*Qx*Fx

Where Wx denotes the weight of APx 202. Vx denotes a variance of meanRSSI with and without WSy 201 taken into account for APx 202. Qx denotesa quota of mean RSSI in maximum RSSI for APx 202. Fx denotes the frameerror rate of APx 202.

In one embodiment, Vx may be determined as follows:

Vx=Mx′−Mx

Where Mx denotes the mean RSSI without WSy taken into account, while Mx′denotes the mean RSSI with WSy taken into account. In one embodiment, Mxmay be determined as follows:

${Mx} = {\sum\limits_{i = 1}^{Nx}\; {{Rxi}/{Nx}}}$

and Mx′ may be determined as follows:

${Mx}^{\prime} = {( {{\sum\limits_{i = 1}^{Nx}\; {Rxi}} + {Rxy}} )/( {{Nx} + 1} )}$

Where N denotes a number of wireless stations associated with APx 202.Rxi denotes the RSSI value between APx 202 and associated WSi. In oneembodiment, Qx=1+Mx′/Rmax, if Vx≧0 and Qx=1−Mx′/Rmax, if Vx<0, whereRmax demotes a maximum RSSI value that the AP can measure from the link.When Vx≧0, it indicates that WSy 201 joining APx 202 will have apositive RSSI contribution to the APx 202. When Vx<0, it indicates thatWSy 201 joining APx 202 will have a negative RSSI effect to the APx 202.

In one embodiment, the network access device 204 may maintain a databasefor purposes of selecting an access point based on the calculated weightrepresenting the load of the access points. FIG. 3 is a block diagramillustrating an exemplary database configuration according to oneembodiment. Referring to FIG. 3, for each mobile client requesting forentering a WLAN, exemplary table 300 may be maintained by a networkaccess device, either statically or dynamically.

Referring to FIG. 3, exemplary table 300 includes an access point IDfield for identifying all of the access points that receive signals fromthe requesting mobile client. For example, an access point may beidentified by its MAC (media access control) address. Exemplary table300 further includes field 302 to store a number of mobile clientscurrently associated with each access point identified via field 301.Field 303 may be used to store an RSSI between the requesting mobileclient and each of the access points. FER field 304 may be used to storethe FER of each access point. The information stored in fields 302-304may be received by the network access device from each access point viaa message according to a WLBP protocol (e.g., messages 207-208 of FIG.2). Weight field 305 may be used to store a result of a weightcalculation according to a predetermined formula such as the onedescribed above. Based on the weight information of each access pointsidentified by field 301, the network access device may select one accesspoint having a weight satisfying one or more predetermined categories.In a particular embodiment, an access point having the highest weightmay be selected to associate with the requesting mobile client.

Note that the exemplary table 300 is described and shown for theillustration purposes only. Exemplary table 300 may also include otherinformation. For example, exemplary table 300 may further include anRSSI threshold field to indicate that when an RSSI of a mobile clientdrops below a threshold indicated by a value stored in the RSSIthreshold field, the network access device may notify the associatedaccess point to disassociate with that mobile client. The disassociatedmobile client may then re-associate with another access point using oneof the techniques described above to achieve load balancing purposes.Other configurations may exist.

Referring back to FIG. 2, in response to the second message receivedduring operation 210, the access point 202 responds to the probe requestreceived via operation 205 by sending a probe response via operation 212to the requesting mobile client 201 to accept the request. Meanwhile, inresponse to the third message received during operation 211, accesspoint 203 responds to the probe request received via operation 206 bysending a probe response via operation 213 to the requesting mobileclient 201 to reject the request. In one particular embodiment, theprobe response message rejecting the request includes one or morepredetermined bits inverted with respect to the probe response messageaccepting the request.

In this example, the probe response message may be an IEEE 802.11compatible probe response, similar to the IEEE 802.11 probe responseframe as shown in FIGS. 4A-4C. Referring to FIGS. 4A-4C, a typical IEEE802.11 management frame 800 includes, among others, a frame body 401.Within the frame body 401, there is a capability information field 402indicating the capability of the respective access point. Within thecapability information field 402, there is a privacy field 403 that isnormally matched with the one set within a mobile client associated withthe access point.

For an access point in a typical system such as a system having an opensystem authentication setting, the privacy bit 403 in a probe responseframe is normally set to zero. For an access point with privacy-enabledauthentication setting such as shared key authentication or WiFiprotected access (WPA) authentication, the privacy bit 403 may be set toone. If a wireless station determines that the privacy bit in a proberesponse does not match the authentication setting of its own, wirelessstation will stop association process. Therefore in WLBP, only thededicated AP, which is selected by the network access device, has thematched privacy bit with the wireless station, and all other APs havethe inverted privacy bit. As a result, the wireless station will bedirected to join the dedicated AP accordingly.

Referring back to FIG. 2, in response to the probe response receivedfrom access point 202 via operation 212, the wireless station 201 mayproceed to perform normal association processes 214 with access point202. Other operations may also be performed.

As described above, according to one embodiment, the first messages207-208, the second message 210, and the third message 211 may betransmitted according to a proprietary protocol WLBP. FIGS. 5A and 5Bare block diagrams illustrating an exemplary WLBP packet according tocertain embodiments. Referring to FIG. 5A, exemplary packet 500 includesa version field 501, an initial vector field 502, and a payload field503. The version field 501 may be used to indicate a version of theWLBP. In one embodiment, the version field 501 has a size of 1 octet(e.g., 8 bits), which may be referred to as one byte in certain types ofcomputer systems. The initial vector field 502 may be used to store aninitial vector for encrypting the payload stored in the payload field503. In one embodiment, the initial vector field 502 includes 6 octets.

In one embodiment, the payload field 503 includes a type field 504, adevice field 505, a sequence number field 506, a WLBP frame 507, and apad field 508. The type field 504 may be used to indicate a frame typeand may have a size of 1 octet according to one embodiment. The sequencenumber field 506 may have a size of 4 octets. The configurations of theWLBP frame 507 and pad field 508 may depend on whether the respectivepacket is transmitted from an access point to a network access device orfrom the network access device to an access point.

According to one embodiment, the WLBP frame 507 includes an event field509, a wireless station ID field 510, an access point ID field 511, anda WLBP payload field 512. The event field 509 may be used to indicatewhether the respective packet is being transmitted from an access pointto a network access device or vice versa. In one embodiment, the eventfield 509 has a size of 1 octet. The wireless station ID field 510 andthe access point ID field 511 may be used to identify the requestingwireless station and the respective access point respectively. In oneembodiment, a MAC address of the wireless station and the access pointmay be used as an ID stored in fields 510 and 511 respectively. In oneembodiment, the wireless station ID field 510 and the access point IDfield each has a size of 6 octets.

The WLBP payload field 512 may be used to store the payload of the WLBPpacket. The size of the payload field 512 depends on the type of thepacket indicated by the event field 509. According to one embodiment,when the event field 509 indicates that the respective packet is beingtransmitted from an access point to a network access device, the WLBPpayload 512 includes an RSSI field 513, an FER field 514, and an NOA(number of associated wireless station) field 515 for respectivelystoring the RSSI, FER, and a number of wireless station currentlyassociated with the access point. In a particular embodiment, each ofthe fields 513-515 has a size of 4 octets.

According to an alternative embodiment, when the event field 509indicates that the packet is being transmitted from the network accessdevice to an access point, the WLBP payload field 512 includes anacknowledgement field 516 to allow the network access device indicatingwhether the access point receiving the packet should accept or rejectthe request from wireless station. In a particular embodiment, theacknowledgement field 516 has a size of 1 octet.

According to one embodiment, the size of the pad field 508 depends onthe type of the WLBP payload 512 indicated by the event field 509. In aparticular embodiment, when the event field 509 indicates that thepacket is being transmitted from an access point to a network accessdevice, the pad field 508 has a size of 1 octet. Otherwise, if thepacket is being transmitted from the network access device to an accesspoint, the pad field 508 has a size of 4 octets. One of the purposes ofthe pad field 508 is to pad the packet conforming to certain memoryaccess boundaries (e.g., 4 bytes or 8 bytes boundary).

According to one embodiment, the payload 503 may be encrypted to preventfrom eavesdropping. In one embodiment, the payload 503 may be encryptedusing an initial vector stored in the vector field 502. In a particularembodiment, the payload 503 may be encrypted using a 3DES (triple dataencryption standard) compatible algorithm as shown in FIG. 5B.

Note that the packet configurations as shown in FIG. 5A are illustratedas an example only. It will be appreciated that various types of thefields, the number of the fields, the sizes of the fields, and/or theorders of the fields may be implemented. Other configurations apparentto one with ordinary skill in the art may be implemented.

FIG. 6 is a flow diagram illustrating an exemplary process forassociating a wireless station with an access point, according to oneembodiment. The exemplary process 600 may be performed by processinglogic that may include hardware (e.g., circuitry, dedicated logic,etc.), software (such as is run on a general-purpose computer system, aserver, a router, or a dedicated machine), or a combination of both. Inone embodiment, the exemplary process 600 includes, but is not limitedto, in response to a request for entering a wireless network from awireless station and forwarded from a plurality of access points (APs),a network access device coupled to the plurality of APs determining aload for each of the APs, and the network access device selecting one ofthe APs based on the determined loads of the APs to associate with thewireless station, whiling causing a remainder of the APs to reject therequest.

Referring to FIG. 6, at block 601, a mobile device wirelessly broadcastsa request for entering (e.g., association or re-association situations)a wireless network (e.g., WLAN) to multiple access points of thewireless network. In one embodiment, the broadcasted request includes anRSSI between the mobile device and each of the multiple access points.In a particular embodiment, the broadcasted request is an IEEE 802.11compatible probe request. In response to the broadcasted request, atblock 602, each access point that receives the broadcast requesttransmits a first message to a network access device interfacing thewireless network with another network (e.g., WAN or Internet), where thefirst message includes load status of the respective access point. Inone embodiment, the load status includes, but is not limited to, anumber of mobile devices currently associated with the respective accesspoint, an RSSI between the requesting mobile device and the respectiveaccess point, and/or an error rate (e.g., FER) of the respective accesspoint.

In response to the first message received from each access point, atblock 603, the network access device selects one of the access pointsbased on a predetermined formula, using in part the load statusextracted from the first message. In one embodiment, the network accessdevice determines a weight for each access point based on the number ofmobile devices currently associated with the respective access point, anRSSI between the respective access point and the requesting mobiledevice, and/or FER of the respective access point. The weight representsthe load for each access point, which may be calculated according to oneor more formulas described above. In one embodiment, the network accessdevice selects an access point having a weight that satisfies one ormore predetermined categories (e.g., highest weight).

At block 604, the network access device transmits a second message tothe selected access point to enable the selected access point toassociate with the requesting mobile device. At block 605, the networkaccess device transmits a third message to the remaining access pointsto enable the remaining access points to reject the request of themobile device. In one embodiment, the second and third messages aretransmitted via a WLBP protocol, similar to those shown in FIG. 5A,particularly, using the acknowledge field 516 to indicate whether theaccess point receiving the message should accept or reject therequesting mobile device.

In one embodiment, in response to the second message, the selectedaccess point responds with a normal probe response message (e.g., IEEE802.11 compatible probe response) to accept the request of the mobiledevice. In response to the third message, the remaining access pointsrespond with a probe response message having one or more bits inverted(e.g., inverted privacy bit 403 of an IEEE 802.11 probe response 400 ofFIGS. 4A-4C) as an indication to reject the request of the mobiledevice. Other operations may also be performed.

FIG. 7 is a block diagram of a digital processing system which may beused with one embodiment of the invention. For example, the exemplarysystem 700 shown in FIG. 7 may be used as a client computer system suchas clients 108-117 of FIG. 1. Alternatively, the exemplary system 700may be implemented as a network access device such as network accessdevice 101 of FIG. 1. Furthermore, exemplary system 700 may beimplemented as an access point such as access points 105-107 of FIG. 1.

Note that while FIG. 7 illustrates various components of a computersystem, it is not intended to represent any particular architecture ormanner of interconnecting the components, as such details are notgermane to the present invention. It will also be appreciated thatnetwork computers, handheld computers, cell phones, and other dataprocessing systems which have fewer components or perhaps morecomponents may also be used with the present invention. For example,when the exemplary system 700 is implemented as an access point or anetwork access device, display controller and display device 708 may beoptional. 10 devices 710 may include a wired network interface and/orwireless network interface.

As shown in FIG. 7, the computer system 700, which is a form of a dataprocessing system, includes a bus or interconnect 702 which is coupledto a microprocessor 703 and a ROM 707, a volatile RAM 705, and anon-volatile memory 706. The microprocessor 703 is coupled to cachememory 704 as shown in the example of FIG. 7. The bus 702 interconnectsthese various components together and also interconnects thesecomponents 703, 707, 705, and 706 to a display controller and displaydevice 708, as well as to input/output (I/O) devices 710, which may bemice, keyboards, modems, network interfaces, printers, and otherdevices, which are well-known in the art.

Typically, the input/output devices 710 are coupled to the systemthrough input/output controllers 709. The volatile RAM 705 is typicallyimplemented as dynamic RAM (DRAM) which requires power continuously inorder to refresh or maintain the data in the memory. The non-volatilememory 706 is typically a magnetic hard drive, a magnetic optical drive,an optical drive, or a DVD RAM or other type of memory system, whichmaintains data even after power, is removed from the system. Typicallythe non-volatile memory will also be a random access memory, althoughthis is not required.

While FIG. 7 shows that the non-volatile memory is a local devicecoupled directly to the rest of the components in the data processingsystem, it will be appreciated that the present invention may utilize anon-volatile memory which is remote from the system, such as a networkstorage device which is coupled to the data processing system through anetwork interface such as a modem or Ethernet interface. The bus 702 mayinclude one or more buses connected to each other through variousbridges, controllers, and/or adapters, as is well-known in the art. Inone embodiment, the I/O controller 709 includes a USB (Universal SerialBus) adapter for controlling USB peripherals. Alternatively, I/Ocontroller 709 may include an IEEE-1394 adapter, also known as FireWireadapter, for controlling FireWire devices. Other components may beincluded.

Thus, a centralized wireless LAN load balancing mechanism has beendescribed herein. Some portions of the preceding detailed descriptionshave been presented in terms of algorithms and symbolic representationsof operations on data bits within a computer memory. These algorithmicdescriptions and representations are the means used by those skilled inthe data processing arts to most effectively convey the substance oftheir work to others skilled in the art. An algorithm is here, andgenerally, conceived to be a self-consistent sequence of operationsleading to a desired result. The operations are those requiring physicalmanipulations of physical quantities. Usually, though not necessarily,these quantities take the form of electrical or magnetic signals capableof being stored, transferred, combined, compared, and otherwisemanipulated. It has proven convenient at times, principally for reasonsof common usage, to refer to these signals as bits, values, elements,symbols, characters, terms, numbers, or the like.

It should be borne in mind, however, that all of these and similar termsare to be associated with the appropriate physical quantities and aremerely convenient labels applied to these quantities. Unlessspecifically stated otherwise as apparent from the following discussion,it is appreciated that throughout the description, discussions utilizingterms such as “processing” or “computing” or “calculating” or“determining” or “displaying” or the like, refer to the action andprocesses of a computer system, or similar electronic computing device,that manipulates and transforms data represented as physical(electronic) quantities within the computer system's registers andmemories into other data similarly represented as physical quantitieswithin the computer system memories or registers or other suchinformation storage, transmission or display devices.

The present invention also relates to apparatus for performing theoperations herein. This apparatus may be specially constructed for therequired purposes, or it may comprise a general purpose computerselectively activated or reconfigured by a computer program stored inthe computer. Such a computer program may be stored in a computerreadable storage medium, such as, but is not limited to, any type ofdisk including floppy disks, optical disks, CD-ROMs, andmagnetic-optical disks, read-only memories (ROMs), random accessmemories (RAMs), erasable programmable ROMs (EPROMs), electricallyerasable programmable ROMs (EEPROMs), magnetic or optical cards, or anytype of media suitable for storing electronic instructions, and eachcoupled to a computer system bus.

The algorithms and displays presented herein are not inherently relatedto any particular computer or other apparatus. Various general purposesystems may be used with programs in accordance with the teachingsherein, or it may prove convenient to construct more specializedapparatus to perform the required method operations. The requiredstructure for a variety of these systems will appear from thedescription below. In addition, the present invention is not describedwith reference to any particular programming language. It will beappreciated that a variety of programming languages may be used toimplement the teachings of the invention as described herein.

A machine-readable medium includes any mechanism for storing ortransmitting information in a form readable by a machine (e.g., acomputer). For example, a machine-readable storage medium includes readonly memory (“ROM”); random access memory (“RAM”); magnetic disk storagemedia; optical storage media; flash memory devices; whereas amachine-readable transmission medium includes electrical, optical,acoustical or other form of propagated signals (e.g., carrier waves,infrared signals, digital signals, etc.), etc.

In the foregoing specification, the invention has been described withreference to specific exemplary embodiments thereof. It will be evidentthat various modifications may be made thereto without departing fromthe broader spirit and scope of the invention as set forth in thefollowing claims. The specification and drawings are, accordingly, to beregarded in an illustrative sense rather than a restrictive sense.

What is claimed is:
 1. A method for load balancing a wireless areanetwork, the method comprising: receiving load data from a plurality ofaccess points, each of the access points having received an entryrequest from a wireless client; and executing instructions stored inmemory, wherein execution of the instructions by a processor: determinesa weighted load value for each access point based on the received loaddata, wherein determining the weighted load value includes comparing amean received signal strength indication (RSSI) of the access point withthe wireless client taken into account to the maximum possible RSSI forthe access point, compares the weighted load values of the access pointsto one another, and selects one access point from among the plurality ofaccess points to accept the entry request from the wireless client basedon the comparison of the weighted load values.
 2. The method of claim 1,wherein the load data for each access point is received at a networkaccess device communicatively coupled to the access points.
 3. Themethod of claim 1, wherein the load data for each access point indicatesa quantity of wireless clients connected to the access point.
 4. Themethod of claim 1, wherein the load data for each access point indicatesan RSSI between the access point and the wireless client.
 5. The methodof claim 1, wherein the load data for each access point indicates aframe error rate (FER) associated with the access point.
 6. The methodof claim 5, wherein determining the weighted load value for each accesspoint is further based on the FER associated with the access point. 7.The method of claim 1, wherein further execution of the processorinstructs each of the non-selected access points to affirmatively rejectthe entry request from the wireless client.
 8. The method of claim 7,wherein rejecting the entry request includes sending a probe response.9. The method of claim 8, wherein the probe request includes one or morealtered bits.
 10. The method of claim 9, wherein the one or more alteredbits include an inverted privacy bit.
 11. A non-transitorycomputer-readable storage medium having embodied thereon a computerprogram executable by a processor to perform a method for load balancinga wireless area network, the method comprising: receiving load data froma plurality of access points, each of the access points having receivedan entry request from a wireless client; determining a weighted loadvalue for each access point based on the received load data, whereindetermining the weighted load value includes comparing a mean receivedsignal strength indication (RSSI) of the access point with the wirelessclient taken into account to the maximum possible RSSI for the accesspoint; comparing the weighted load values of the access points to oneanother; and selecting one access point from among the plurality ofaccess points to accept the entry request from the wireless client basedon the comparison of the weighted load values.
 12. The non-transitorycomputer-readable storage medium of claim 11, wherein the load data foreach access point is received at a network access device communicativelycoupled to the access points.
 13. The non-transitory computer-readablestorage medium of claim 11, wherein the load data for each access pointindicates a quantity of wireless clients connected to the access point.14. The non-transitory computer-readable storage medium of claim 11,wherein the load data for each access point indicates an RSSI betweenthe access point and the wireless client.
 15. The non-transitorycomputer-readable storage medium of claim 11, wherein the load data foreach access point indicates a frame error rate (FER) associated with theaccess point.
 16. The non-transitory computer-readable storage medium ofclaim 15, wherein determining the weighted load value for each accesspoint is further based on the FER associated with the access point. 17.The non-transitory computer-readable storage medium of claim 11, whereinthe method further comprises instructing each of the non-selected accesspoints to affirmatively reject the entry request from the wirelessclient.
 18. The non-transitory computer-readable storage medium of claim17, wherein rejecting the entry request includes sending a proberesponse.
 19. The non-transitory computer-readable storage medium ofclaim 18, wherein the probe request includes one or more altered bits.20. The non-transitory computer-readable storage medium of claim 19,wherein the one or more altered bits include an inverted privacy bit.